package cn.ac.iscas.domain.response.middleplatform;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
//import io.swagger.annotations.ApiModel;
//import io.swagger.annotations.ApiModelProperty;
//import lombok.Data;
//import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * @author lirenshen
 * @version 1.0
 * @date 2022/3/7 10:40
 * @since jdk11
 */
//@Data
//@Accessors(chain = true)
//@ApiModel(value = "DmoTableMeta对象", description = "数据表元信息")
@TableName("dmo_rest_table_meta")
public class DmoTableMeta {

    //@ApiModelProperty(value = "id")
    @TableId(type = IdType.AUTO)
    private Integer id;

    //@ApiModelProperty(value = "所属层级，ods、dwd、dws、ads")
    private String tableLevel;

    //@ApiModelProperty(value = "所属数据源")
    private String datasourceName;

    //@ApiModelProperty(value = "数据源类型")
    private String datasourceType;

    //@ApiModelProperty(value = "所属数据库")
    private String databaseName;

    //@ApiModelProperty(value = "表名")
    private String tableName;

    //@ApiModelProperty(value = "表元信息")
    private String tableMeta;

    //@ApiModelProperty(value = "表的别名")
    private String tableAlias;

    private String modelType;

    private List<String> labels;

    //@ApiModelProperty(value = "组装好的表头，包含列的别名")
    private String tableHeader;

    //@ApiModelProperty(value = "创建人")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    //@ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    //@ApiModelProperty(value = "更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    //@ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    private String subjectDomainName;
    private Integer subjectDomainId;
    private String businessAppName;
    private Integer businessAppId;
    private Integer datasourceId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTableLevel() {
        return tableLevel;
    }

    public void setTableLevel(String tableLevel) {
        this.tableLevel = tableLevel;
    }

    public String getModelType() {
        return modelType;
    }

    public void setModelType(String modelType) {
        this.modelType = modelType;
    }

    public List<String> getLabels() {
        return labels;
    }

    public void setLabels(List<String> labels) {
        this.labels = labels;
    }

    public String getDatasourceName() {
        return datasourceName;
    }

    public void setDatasourceName(String datasourceName) {
        this.datasourceName = datasourceName;
    }

    public String getDatasourceType() {
        return datasourceType;
    }

    public void setDatasourceType(String datasourceType) {
        this.datasourceType = datasourceType;
    }

    public String getDatabaseName() {
        return databaseName;
    }

    public void setDatabaseName(String databaseName) {
        this.databaseName = databaseName;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getTableMeta() {
        return tableMeta;
    }

    public void setTableMeta(String tableMeta) {
        this.tableMeta = tableMeta;
    }

    public String getTableAlias() {
        return tableAlias;
    }

    public void setTableAlias(String tableAlias) {
        this.tableAlias = tableAlias;
    }

    public String getTableHeader() {
        return tableHeader;
    }

    public void setTableHeader(String tableHeader) {
        this.tableHeader = tableHeader;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getSubjectDomainName() {
        return subjectDomainName;
    }

    public void setSubjectDomainName(String subjectDomainName) {
        this.subjectDomainName = subjectDomainName;
    }

    public Integer getSubjectDomainId() {
        return subjectDomainId;
    }

    public void setSubjectDomainId(Integer subjectDomainId) {
        this.subjectDomainId = subjectDomainId;
    }

    public String getBusinessAppName() {
        return businessAppName;
    }

    public void setBusinessAppName(String businessAppName) {
        this.businessAppName = businessAppName;
    }

    public Integer getBusinessAppId() {
        return businessAppId;
    }

    public void setBusinessAppId(Integer businessAppId) {
        this.businessAppId = businessAppId;
    }

    public Integer getDatasourceId() {
        return datasourceId;
    }

    public void setDatasourceId(Integer datasourceId) {
        this.datasourceId = datasourceId;
    }
}
